package com.ruoyi.accountant.service;

import com.ruoyi.accountant.domain.TransactionDetail;
import com.ruoyi.web.web.form.TransactionDetailListForm;
import com.github.pagehelper.PageInfo;

import java.util.List;

/***
 * 交易记录明细
 */
public interface TransactionDetailService {
    /***
     * 查询所有
     * @return
     */
    List<TransactionDetail> findAll();

    /***
     * 根据表单查询
     * @param transactionDetailListForm
     * @return
     */
    List<TransactionDetail> findAllByForm(TransactionDetailListForm transactionDetailListForm);

    /***
     * 删除交易记录
     * @param tid
     */
    void deleteById(Long tid);

    /***
     * 查询已经删除的交易
     * @return
     */
    List<TransactionDetail> findDeleted();

    /***
     * 恢復
     * @param tid
     */
    void recover(Long tid);

    /***
     * 根据ID查询
     * @param tid
     * @return
     */
    TransactionDetail findById(Long tid);

    /***
     * 更新
     * @param transactionDetail
     */
    void updateByForm(TransactionDetail transactionDetail);

    /***
     * 删除超过保留时间的交易记录
     * @return
     */
    int deleteOverDeletedDays();

    /***
     * 完成交易
     * @param tid
     */
    void finish(Long tid);
}
